[INFO] fetching crate spoterm 0.1.0...
[INFO] checking spoterm-0.1.0 against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] extracting crate spoterm 0.1.0 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate spoterm 0.1.0 on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate spoterm 0.1.0
[INFO] finished tweaking crates.io crate spoterm 0.1.0
[INFO] tweaked toml for crates.io crate spoterm 0.1.0 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate crates.io crate spoterm 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded arc-swap v0.3.11
[INFO] [stderr]   Downloaded getrandom v0.1.10
[INFO] [stderr]   Downloaded cc v1.0.40
[INFO] [stderr]   Downloaded log4rs v0.8.3
[INFO] [stderr]   Downloaded tui v0.5.1
[INFO] [stderr]   Downloaded blake2b_simd v0.5.7
[INFO] [stderr]   Downloaded webbrowser v0.5.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c21618707b97f9c851542bfdf83de32ba4168c173144fc77b9c2cc642f4d3793
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c21618707b97f9c851542bfdf83de32ba4168c173144fc77b9c2cc642f4d3793", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c21618707b97f9c851542bfdf83de32ba4168c173144fc77b9c2cc642f4d3793", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c21618707b97f9c851542bfdf83de32ba4168c173144fc77b9c2cc642f4d3793", kill_on_drop: false }`
[INFO] [stdout] c21618707b97f9c851542bfdf83de32ba4168c173144fc77b9c2cc642f4d3793
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 528712b0e45b20df25f3e4a6e1d9e03a7a2a92cd2c5f4af5d244e8cefd55246e
[INFO] running `Command { std: "docker" "start" "-a" "528712b0e45b20df25f3e4a6e1d9e03a7a2a92cd2c5f4af5d244e8cefd55246e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.62
[INFO] [stderr]    Compiling autocfg v0.1.6
[INFO] [stderr]    Compiling proc-macro2 v1.0.1
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.3
[INFO] [stderr]    Compiling serde v1.0.99
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]    Compiling cc v1.0.40
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]     Checking futures v0.1.28
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking smallvec v0.6.10
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]    Compiling arrayvec v0.4.11
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.15
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking regex-syntax v0.6.11
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.24
[INFO] [stderr]     Checking adler32 v1.0.3
[INFO] [stderr]     Checking dtoa v0.4.4
[INFO] [stderr]     Checking indexmap v1.1.0
[INFO] [stderr]     Checking openssl-probe v0.1.2
[INFO] [stderr]    Compiling encoding_rs v0.8.17
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking linked-hash-map v0.5.2
[INFO] [stderr]    Compiling derive_builder v0.7.2
[INFO] [stderr]     Checking rustc-serialize v0.3.24
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]     Checking termcolor v1.0.5
[INFO] [stderr]     Checking webbrowser v0.5.1
[INFO] [stderr]     Checking arc-swap v0.3.11
[INFO] [stderr]     Checking log-mdc v0.1.0
[INFO] [stderr]     Checking random v0.12.2
[INFO] [stderr]     Checking antidote v1.0.0
[INFO] [stderr]     Checking unicode-segmentation v1.3.0
[INFO] [stderr]     Checking try_from v0.3.2
[INFO] [stderr]     Checking unicode-normalization v0.1.8
[INFO] [stderr]    Compiling unicase v2.4.0
[INFO] [stderr]    Compiling error-chain v0.12.1
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]     Checking miniz_oxide v0.3.2
[INFO] [stderr]     Checking humantime v1.2.0
[INFO] [stderr]     Checking unsafe-any v0.4.2
[INFO] [stderr]     Checking yaml-rust v0.4.3
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]     Checking crc32fast v1.2.0
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking crossbeam-channel v0.3.9
[INFO] [stderr]     Checking typemap v0.3.3
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking tokio-executor v0.1.8
[INFO] [stderr]     Checking tokio-sync v0.1.6
[INFO] [stderr]     Checking aho-corasick v0.7.6
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking termion v1.5.3
[INFO] [stderr]     Checking thread-id v3.3.0
[INFO] [stderr]     Checking hostname v0.1.5
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking rpassword v3.0.2
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]    Compiling backtrace-sys v0.1.31
[INFO] [stderr]    Compiling openssl-sys v0.9.49
[INFO] [stderr]    Compiling miniz-sys v0.1.12
[INFO] [stderr]     Checking tokio-timer v0.2.11
[INFO] [stderr]     Checking tokio-current-thread v0.1.6
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking mime v0.3.13
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]    Compiling memoffset v0.5.1
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]    Compiling hyper v0.12.33
[INFO] [stderr]    Compiling mime_guess v2.0.1
[INFO] [stderr]     Checking regex v1.2.1
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking http v0.1.18
[INFO] [stderr]     Checking string v0.2.1
[INFO] [stderr]     Checking tokio-buf v0.1.1
[INFO] [stderr]     Checking backtrace v0.3.35
[INFO] [stderr]     Checking flate2 v1.0.11
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]    Compiling native-tls v0.2.3
[INFO] [stderr]     Checking crossbeam-deque v0.7.1
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]     Checking crossbeam v0.7.2
[INFO] [stderr]     Checking cookie v0.12.0
[INFO] [stderr]     Checking publicsuffix v1.5.2
[INFO] [stderr]     Checking parking_lot v0.7.1
[INFO] [stderr]     Checking http-body v0.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.99
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]    Compiling darling_core v0.9.0
[INFO] [stderr]    Compiling failure_derive v0.1.5
[INFO] [stderr]    Compiling darling_macro v0.9.0
[INFO] [stderr]     Checking failure v0.1.5
[INFO] [stderr]     Checking dotenv v0.13.0
[INFO] [stderr]    Compiling darling v0.9.0
[INFO] [stderr]    Compiling derive_builder_core v0.5.0
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stderr]     Checking serde_urlencoded v0.5.5
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking serde-value v0.5.3
[INFO] [stderr]     Checking serde_yaml v0.8.9
[INFO] [stderr]     Checking toml v0.5.3
[INFO] [stderr]     Checking tokio-io v0.1.12
[INFO] [stderr]     Checking mio v0.6.19
[INFO] [stderr]     Checking tokio-threadpool v0.1.15
[INFO] [stderr]     Checking want v0.2.0
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]     Checking tui v0.5.1
[INFO] [stderr]     Checking h2 v0.1.26
[INFO] [stderr]     Checking tokio-reactor v0.1.9
[INFO] [stderr]     Checking tokio-tcp v0.1.3
[INFO] [stderr]     Checking cookie_store v0.7.0
[INFO] [stderr]     Checking log4rs v0.8.3
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking hyper-tls v0.3.2
[INFO] [stderr]     Checking reqwest v0.9.17
[INFO] [stderr]     Checking rspotify v0.7.0
[INFO] [stderr]     Checking spoterm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/spoterm.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::rspotify::spotify::model::playing::Playing`
[INFO] [stdout]  --> src/spoterm.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use self::rspotify::spotify::model::playing::Playing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ui`
[INFO] [stdout]  --> src/spoterm.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::ui;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UI`
[INFO] [stdout]   --> src/spoterm.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::ui::{Contents, LikedSongs, RecentPlayed, UI};
[INFO] [stdout]    |                                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::rspotify::spotify::model::page::Page`
[INFO] [stdout]   --> src/spoterm.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::rspotify::spotify::model::page::Page;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CHECKING`, `SAVED`
[INFO] [stdout]   --> src/spoterm.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::spoterm::SaveState::{CHECKING, SAVED, UNKNOWN};
[INFO] [stdout]    |                                 ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::client::Spotify`
[INFO] [stdout]   --> src/spoterm.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rspotify::spotify::client::Spotify;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SpotifyClientCredentials`, `SpotifyOAuth`
[INFO] [stdout]   --> src/spoterm.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rspotify::spotify::oauth2::{SpotifyClientCredentials, SpotifyOAuth};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::util::get_token`
[INFO] [stdout]   --> src/spoterm.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rspotify::spotify::util::get_token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/spoterm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stdout]  --> src/ui.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::client::Spotify`
[INFO] [stdout]  --> src/ui.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rspotify::spotify::client::Spotify;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Playing`
[INFO] [stdout]  --> src/ui.rs:6:54
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rspotify::spotify::model::playing::{PlayHistory, Playing};
[INFO] [stdout]   |                                                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TermRead`
[INFO] [stdout]  --> src/ui.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | use termion::input::{MouseTerminal, TermRead};
[INFO] [stdout]   |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::backend::TermionBackend`
[INFO] [stdout]   --> src/ui.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tui::backend::TermionBackend;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tabs`
[INFO] [stdout]   --> src/ui.rs:13:52
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tui::widgets::{Block, Borders, SelectableList, Tabs, Widget};
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ui.rs:34:22
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub uis: Vec<Box<UI>>,
[INFO] [stdout]    |                      ^^ help: use `dyn`: `dyn UI`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/spoterm.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::rspotify::spotify::model::playing::Playing`
[INFO] [stdout]  --> src/spoterm.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use self::rspotify::spotify::model::playing::Playing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ui`
[INFO] [stdout]  --> src/spoterm.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::ui;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UI`
[INFO] [stdout]   --> src/spoterm.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::ui::{Contents, LikedSongs, RecentPlayed, UI};
[INFO] [stdout]    |                                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::rspotify::spotify::model::page::Page`
[INFO] [stdout]   --> src/spoterm.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::rspotify::spotify::model::page::Page;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CHECKING`, `SAVED`
[INFO] [stdout]   --> src/spoterm.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::spoterm::SaveState::{CHECKING, SAVED, UNKNOWN};
[INFO] [stdout]    |                                 ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::client::Spotify`
[INFO] [stdout]   --> src/spoterm.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rspotify::spotify::client::Spotify;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SpotifyClientCredentials`, `SpotifyOAuth`
[INFO] [stdout]   --> src/spoterm.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rspotify::spotify::oauth2::{SpotifyClientCredentials, SpotifyOAuth};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::util::get_token`
[INFO] [stdout]   --> src/spoterm.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rspotify::spotify::util::get_token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/spoterm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stdout]  --> src/ui.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rspotify::spotify::client::Spotify`
[INFO] [stdout]  --> src/ui.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rspotify::spotify::client::Spotify;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Playing`
[INFO] [stdout]  --> src/ui.rs:6:54
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rspotify::spotify::model::playing::{PlayHistory, Playing};
[INFO] [stdout]   |                                                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TermRead`
[INFO] [stdout]  --> src/ui.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | use termion::input::{MouseTerminal, TermRead};
[INFO] [stdout]   |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::backend::TermionBackend`
[INFO] [stdout]   --> src/ui.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tui::backend::TermionBackend;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tabs`
[INFO] [stdout]   --> src/ui.rs:13:52
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tui::widgets::{Block, Borders, SelectableList, Tabs, Widget};
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ui.rs:34:22
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub uis: Vec<Box<UI>>,
[INFO] [stdout]    |                      ^^ help: use `dyn`: `dyn UI`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/spotify.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/spotify.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `input_handle`
[INFO] [stdout]   --> src/event.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     input_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `tick_handle`
[INFO] [stdout]   --> src/event.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     tick_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `api_update_handle`
[INFO] [stdout]   --> src/event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     api_update_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SCOPES`
[INFO] [stdout]   --> src/spoterm.rs:74:1
[INFO] [stdout]    |
[INFO] [stdout] 74 | / const SCOPES: [&'static str; 18] = [
[INFO] [stdout] 75 | |     //Listening History
[INFO] [stdout] 76 | |     "user-top-read",
[INFO] [stdout] 77 | |     "user-read-recently-played",
[INFO] [stdout] ...  |
[INFO] [stdout] 98 | |     "playlist-modify-private",
[INFO] [stdout] 99 | | ];
[INFO] [stdout]    | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `fetch_current_user_playing_track`
[INFO] [stdout]    --> src/spotify.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn fetch_current_user_playing_track(&self) -> Result<(), failure::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spoterm.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         spotify.run();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     self.fetch_shuffle(state, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     self.fetch_pause_playback(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     self.fetch_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |                     self.fetch_seek_track(progress_ms, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     self.fetch_volume(volume_percent, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                     self.fetch_repeat(state, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     self.fetch_next_track(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |                     self.fetch_previous_track(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     self.fetch_current_user_recently_played();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     self.fetch_delete_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     self.fetch_add_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     self.fetch_check_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     self.fetch_current_user_saved_tracks(offset);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     self.fetch_start_playback(device_id, uris);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     self.fetch_current_playback();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `input_handle`
[INFO] [stdout]   --> src/event.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     input_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `tick_handle`
[INFO] [stdout]   --> src/event.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     tick_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `api_update_handle`
[INFO] [stdout]   --> src/event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     api_update_handle: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SCOPES`
[INFO] [stdout]   --> src/spoterm.rs:74:1
[INFO] [stdout]    |
[INFO] [stdout] 74 | / const SCOPES: [&'static str; 18] = [
[INFO] [stdout] 75 | |     //Listening History
[INFO] [stdout] 76 | |     "user-top-read",
[INFO] [stdout] 77 | |     "user-read-recently-played",
[INFO] [stdout] ...  |
[INFO] [stdout] 98 | |     "playlist-modify-private",
[INFO] [stdout] 99 | | ];
[INFO] [stdout]    | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `fetch_current_user_playing_track`
[INFO] [stdout]    --> src/spotify.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn fetch_current_user_playing_track(&self) -> Result<(), failure::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 39 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spoterm.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         spotify.run();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     self.fetch_shuffle(state, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     self.fetch_pause_playback(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     self.fetch_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |                     self.fetch_seek_track(progress_ms, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     self.fetch_volume(volume_percent, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                     self.fetch_repeat(state, device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     self.fetch_next_track(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |                     self.fetch_previous_track(device_id);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     self.fetch_current_user_recently_played();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     self.fetch_delete_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     self.fetch_add_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     self.fetch_check_current_user_saved_tracks(&track_ids);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     self.fetch_current_user_saved_tracks(offset);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     self.fetch_start_playback(device_id, uris);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/spotify.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     self.fetch_current_playback();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 39 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]   --> src/main.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use termion::event::{Event, Key};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TermRead`
[INFO] [stdout]   --> src/main.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use termion::input::{MouseTerminal, TermRead};
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SelectableList`
[INFO] [stdout]   --> src/main.rs:22:53
[INFO] [stdout]    |
[INFO] [stdout] 22 | use tui::widgets::{Block, Borders, List, Paragraph, SelectableList, Tabs, Text, Widget};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:59:71
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn get_spotify_client_id_and_secret() -> Result<(String, String), Box<std::error::Error>> {
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn main() -> Result<(), Box<std::error::Error>> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:238:24
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 .style((Style::default().fg(Color::White)))
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spoterm::ui::UI`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use spoterm::ui::UI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     spoterm.set_selected_device();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     spoterm.set_selected_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:192:21
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     spoterm.set_selected_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 | /         terminal.draw(|mut f| {
[INFO] [stdout] 206 | |             let size = f.size();
[INFO] [stdout] 207 | |             let chunks = Layout::default()
[INFO] [stdout] 208 | |                 .direction(Direction::Vertical)
[INFO] [stdout] ...   |
[INFO] [stdout] 242 | |             spoterm.contents.uis[spoterm.selected_menu_tab_id].render(&mut f, chunks[3]);
[INFO] [stdout] 243 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::path;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]   --> src/main.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use termion::event::{Event, Key};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TermRead`
[INFO] [stdout]   --> src/main.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use termion::input::{MouseTerminal, TermRead};
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SelectableList`
[INFO] [stdout]   --> src/main.rs:22:53
[INFO] [stdout]    |
[INFO] [stdout] 22 | use tui::widgets::{Block, Borders, List, Paragraph, SelectableList, Tabs, Text, Widget};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:59:71
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn get_spotify_client_id_and_secret() -> Result<(String, String), Box<std::error::Error>> {
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn main() -> Result<(), Box<std::error::Error>> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:238:24
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 .style((Style::default().fg(Color::White)))
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spoterm::ui::UI`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use spoterm::ui::UI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |                 _ => {}
[INFO] [stdout]     |                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     spoterm.set_selected_device();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     spoterm.set_selected_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:192:21
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     spoterm.set_selected_device();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 | /         terminal.draw(|mut f| {
[INFO] [stdout] 206 | |             let size = f.size();
[INFO] [stdout] 207 | |             let chunks = Layout::default()
[INFO] [stdout] 208 | |                 .direction(Direction::Vertical)
[INFO] [stdout] ...   |
[INFO] [stdout] 242 | |             spoterm.contents.uis[spoterm.selected_menu_tab_id].render(&mut f, chunks[3]);
[INFO] [stdout] 243 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 09s
[INFO] running `Command { std: "docker" "inspect" "528712b0e45b20df25f3e4a6e1d9e03a7a2a92cd2c5f4af5d244e8cefd55246e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "528712b0e45b20df25f3e4a6e1d9e03a7a2a92cd2c5f4af5d244e8cefd55246e", kill_on_drop: false }`
[INFO] [stdout] 528712b0e45b20df25f3e4a6e1d9e03a7a2a92cd2c5f4af5d244e8cefd55246e
